Skip to content

chore(release/candidate): release 2.4.0#6246

Open
adk-bot wants to merge 1 commit into
release/candidatefrom
release-please--branches--release/candidate--components--google-adk
Open

chore(release/candidate): release 2.4.0#6246
adk-bot wants to merge 1 commit into
release/candidatefrom
release-please--branches--release/candidate--components--google-adk

Conversation

@adk-bot

@adk-bot adk-bot commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

🤖 I have created a release beep boop

2.4.0 (2026-06-29)

Features

  • add error handling to VertexAiMemoryBankService.search_memory (f3529e9)
  • Add mTLS support for DiscoveryEngineSearchTool (8ba0e6a)
  • add OpenAI Responses API support in labs (6b831d5), closes #3209
  • Add support for reusing an existing SQLAlchemy AsyncEngine in DatabaseSessionService (f4c7e4c)
  • add support for session TTL and expiration in Vertex AI session service (49d4441)
  • Added Log info when agent run is cancelled and log warning if putting sentinel on queue fails during cleanup avoiding silent error suppression (c84c17a)
  • Expose branch property on Context (50c81eb)
  • Expose parameter_binding in @node decorator (bfc236d)
  • HTTP traces for MCP server requests/errors (4c4f77a)
  • interactions: stream thought, media, code-exec and function-result deltas (b2dda6e)
  • interactions: surface streamed grounding and final usage metadata (6a50b8d)
  • memory: add Vertex AI load_profiles tool (fb2b3af)
  • models: Add configuration options to Gemini class (037ec12), closes #3813
  • models: surface and recover environment_id from interactions (81f9f2e)
  • Pass invocation_id to _setup_invocation_context (73ecf8d)
  • refactor ADK CLI server to support nested agents in dev mode and simplify API (35a3e4c)
  • sessions: add public prepare_tables() for eager initialization (66221c4)
  • skills: inject session state into SKILL.md via adk_inject_state (3afdb08)
  • support file_data URI references in GcsArtifactService (43115b2)
  • Support provider-prefixed Gemini model IDs (816a87f)
  • telemetry: add tool type attribute to tool execution duration (d5e8bc7)
  • telemetry: introduce ADK_TELEMETRY_SCHEMA_VERSION_OPT_IN (84bbb35)
  • telemetry: specify bucket boundaries for GenAI metrics (abf9258)
  • tools: add response_scheduling to control Live function response behavior (7443bfa)
  • tools: resolve built-in tools for managed-agent requests (f11d19d)
  • tools: Support tuple tool parameters (a57c3e4)
  • utils: Add support for nested state access in template injection (94c43a2)

Bug Fixes

  • adapt interactions conversion to google-genai 2.9 SDK changes (9f3aeef)
  • add module blocklist for YAML agent config code references (6a5be34)
  • add parameter validation for sync tools in ADK functions.py (9b9d27d)
  • add trailing newline to check_new_py_files.sh (21512ea)
  • agents: persist output_key when before_agent_callback short-circuits LlmAgent (0e263f1)
  • agents: preserve text streamed before tool calls in output_key (5a0b4af)
  • agents: prevent path traversal in AgentTool config_path resolution (171ae9e)
  • ApplicationIntegrationTool: implement dynamic mTLS endpoint resolution (37ca6fb)
  • apply run_config custom_metadata to user event in node runtime (066fbce)
  • artifacts: Preserve .text on GcsArtifactService load (ba51ff2), closes #3157
  • Avoid overwriting existing isolation scope in stamp_event_branch_context (798207a)
  • catch RecursionError in safe JSON serialization helpers (5515800), closes #5411
  • check if transfer target is a sibling agent (fa18d26)
  • ci: Restrict GitHub Actions to main/v1 branches and main repository (8c4173e)
  • cli: enable interspersed option parsing for cloud_run command (7b049b9)
  • cli: Ensure ADK compatibility in agent engine requirements (ea772b9), closes #5966
  • cli: respect ignore files in adk deploy commands (ee79e71)
  • concatenate list values in deep_merge_dicts during parallel tool call merge (fda2347), closes #5190
  • concatenate list values in deep_merge_dicts during parallel tool call merge (1ff84eb), closes #5190
  • Enable history_config on Vertex AI now that it is supported (2920145)
  • enforce agent-config args denylist when loaded under adk web (e506fa6)
  • ensure AgentTool text output when skip_summarization is True (b983fcf), closes #3881
  • exclude live HTTP clients from trace serialization (59868ea)
  • exit connection cleanly on expected GoAway signal in bidi streaming (4d165ef)
  • fingerprint cacheable context prefix (7c7f1e7)
  • fix ADK Web update workflow PR ownership and CLA issue (b9646f4)
  • Fix branch parsing and unify branch stamping (9e3b43f)
  • Fix Code Generation Template Injection via Filenames (e042b8d)
  • Fix error swallowing in MCP session context (ccb8138)
  • Fix event loop closed and thread leak errors in unit tests (2f2e03b)
  • Fix instructions_utils matching invalid nested paths (20ba01c)
  • Fix MCP debug client factory compatibility with keyword-only factories (1ad8864)
  • Fix regression in instructions_utils placeholder matching (9ecbaed)
  • Fix Vertex AI Live API session replay on reconnect / modality switch (c007a87)
  • guard against None converter results in RemoteA2aAgent (23ff66e)
  • guard against None converter results in RemoteA2aAgent handlers (2e3d717)
  • guard user_content assignment against None in EvaluationGenerator (6bc9c9f)
  • Handle empty message in LiteLLM response (d3e793f)
  • handle Pydantic models in safe_json_serialize for tool tracing (25d666a), closes #4629
  • harden ContainerCodeExecutor sandbox by default (0a9ce0f)
  • implement dynamic mtls endpoint resolution for parameter manager (62b9700)
  • implement dynamic mtls endpoint resolution for secret manager (5d4a13f)
  • import App lazily in _resolve_app to fix legacy Runner NameError (7481d07)
  • LiteLLM Claude thinking blocks with display: "omitted" were lost (7461863)
  • Litellm preserve streamed reasoning deltas in LiteLLM adapter (b9625bf)
  • LiteLlm: recognize assistant- prefix as valid OpenAI file ID (ea325c7), closes #5664
  • LiteLlm: recognize assistant- prefix as valid OpenAI file ID (796964a)
  • live: forward thinking config (71d8c84)
  • Make EUC request args JSON-serializable (a181a39)
  • map A2A Message.role to correct GenAI content role (fe08a9f)
  • mcp: propagate trace context in default streamable HTTP client (431e3c2), closes #4768
  • migrate AgentRegistry base URLs from v1alpha to v1 (82432a3)
  • models: gate Gemini cache creation on cacheable prefix tokens (1070036)
  • N sized sliding window (d00ad67)
  • preserve Anthropic thinking blocks and signatures in LiteLLM round-trip (febb250)
  • preserve JSON-native types in A2A _serialize_value() (139c700), closes #5183
  • prevent VertexAiRagRetrieval from blocking the event loop (5898f37), closes #5033
  • propagate Gemini grounding metadata from ModelResponse (c303c62)
  • raise ValueError for unsupported MIME types in file_data URI path (42eceb3)
  • reconnect on live connection 1011 error (f36d257), closes #5525
  • recurse into JSON-native containers in A2A _serialize_value() (c08debc)
  • refactor _redact_file_uri_for_log to dynamically extract file ID prefixes (file-, assistant-). This ensures compatibility with both current prefixes and future OpenAI/Azure file ID types. (ea325c7)
  • remove unit test with wrong assumption about claude thinking parts (94fcdbb)
  • restore auth_token initialization for secret and parameter manager clients (46a2181)
  • Rollback instruction util refactoring as its breaking internal customers (59fe9b3)
  • sandbox nested persona template rendering in evaluation prompts (30493ba)
  • scope single-turn node inputs to workflow branch (8d389e2)
  • send correct field names for sandbox input files (2b7e08a)
  • sessions: drop unsupported part_metadata before Vertex appendEvent (40a0279), closes #6014
  • sessions: strip tzinfo for MariaDB in DatabaseSessionService (2f799d5)
  • strip tzinfo from datetime for MySQL in create_session (a012bb7)
  • surface error for empty STOP model turn in non-streaming mode (932a9b5), closes #5631
  • terminate infinite retry loop in RunSkillScriptTool on SCRIPT_NOT_FOUND (89d9bda), closes #5684
  • tools: handle tuple schemas in function parsing fallback (4fa7741)
  • update litellm dependency constraint to >=1.84.0 (a912306)
  • update mtls_utils import in secret_client.py (0b79f8d)
  • use Modality enum for RunConfig.response_modalities (5c8c55a)
  • validate local eval path segments (7b87f91)
  • Wrap math formulas in math blocks in retry config guide (a40f199)

Performance Improvements

  • create SQLite session schema once per service instance (10a2cc5)
  • skip event query in DB get_session when num_recent_events is 0 (7e8191a)

Documentation

  • Add manual batch mode trigger for ADK Pull Request Triaging workflow (dbd4bb0)
  • clarify is_final_response() is a public helper (978be4b), closes #4016
  • remove trailing whitespace in dynamic_nodes guide (a7377b4)
  • Sort PRs by update time in list_untriaged_pull_requests (8679aa8)
  • Streamline open_source_workspace/AGENTS.md (ea2ea73)
  • Update ADK Pull Request Triaging Agent workflow to run periodically (b3f278a)
  • workflow: Add and update workflow developer guides (e5c7d20)

This PR was generated with Release Please. See documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant